package com.iapcursos.portal.procefet.modelo.beans.sessions;

import java.util.List;

import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;

import com.iapcursos.portal.procefet.modelo.beans.entitys.Pessoa;
import com.iapcursos.portal.procefet.modelo.beans.sessions.interfaces.GerenciadorProfessores;


/**
 * @author Osailton
 *
 */
@Stateless(mappedName="gerenciadorProfessores")

public class GerenciadorProfessoresBean implements GerenciadorProfessores {
	
	@PersistenceContext(unitName="iap")
	private EntityManager entityManager;
	
	/**
	 *
	 */
	public GerenciadorProfessoresBean() {

	}

	@SuppressWarnings("unchecked")
	@Override
	public List<Pessoa> recuperaProfessores() {
		/*Query consulta =  entityManager.createQuery("SELECT p FROM Pessoa p WHERE " +
													"EXISTS(SELECT papel FROM p.usuario.papeis papel " +
													"WHERE papel.nome=:nome)");*/
		Query consulta =  entityManager.createNativeQuery("select p.* from pessoas p " +
				"inner join usuarios u on (u.id = p.usuario_id)" +
				"inner join usuarios_papeis up on (up.usuario_id = u.id)" +
				"inner join papeis pa on (up.papeis_id = pa.id) " + 
				"where pa.nome = 'Professor'", Pessoa.class);

		List<Pessoa> professores = (List<Pessoa>) consulta.getResultList();
		return professores;
	}

	@Override
	public Pessoa recuperarProfessor(int id) {
		Pessoa professor = entityManager.find(Pessoa.class, id);
		return professor;
	}



}
